A number of video encoding techniques have been developed for encoding digital video sequences. The Moving Picture Experts Group (MPEG), for example, has developed several techniques including MPEG-1, MPEG-2 and MPEG-4. Other examples include the International Telecommunication Union (ITU)-T H.263 standard, and the ITU-T H.264 standard and its counterpart, ISO/IEC MPEG-4, Part 10, i.e., Advanced Video Coding (AVC). These video coding standards support efficient transmission of video sequences by encoding data in a compressed manner. Compression reduces the overall amount of data that needs to be transmitted.
Video compression may involve spatial and/or temporal prediction to reduce redundancy inherent in video sequences. Intra-coding uses spatial prediction to reduce spatial redundancy between video blocks within the same video frame. Inter-coding uses temporal prediction to reduce temporal redundancy between video blocks in successive video frames. For inter-coding, a video encoder performs motion estimation to generate motion vectors indicating displacement of video blocks relative to corresponding prediction video blocks in one or more reference frames. The video encoder performs motion compensation to generate a prediction video block from the reference frame, and forms a residual video block by subtracting the prediction video block from the original video block being coded.
To meet low bandwidth requirements, some video applications may encode video at a reduced frame rate and/or skip encoding of some frames. Unfortunately, low frame rate video can produce temporal artifacts in the form of motion jerkiness. Frame interpolation or extrapolation may be employed at the decoder side to approximate the content of frames that are skipped by the encoder, or frames that are beyond the basic frame rate produced by the encoder. Frame interpolation or extrapolation may generally be referred to as frame substitution. Frame substitution may be used, in effect, to upconvert an actual frame rate to provide a perception of smoother motion. Frame insertion or substitution may be used to support a process often referred to as frame rate up conversion (FRUC). FRUC can be used to convert different video frame formats, e.g. converting from one frame rate to another frame rate. Although FRUC may enhance temporal quality by substituting frames, e.g., using interpolation or extrapolation, substitution of some frames may introduce undesirable spatial artifacts that undermine visual quality.